↳ Prolog
↳ PrologToPiTRSProof
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X, 0) → U1_gga(T, X, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X, isnumber_out_g(T)) → d_out_gga(T, X, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X, 0) → U1_gga(T, X, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X, isnumber_out_g(T)) → d_out_gga(T, X, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(T, X, 0) → U1_GGA(T, X, isnumber_in_g(T))
D_IN_GGA(T, X, 0) → ISNUMBER_IN_G(T)
ISNUMBER_IN_G(s(X)) → U7_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → U8_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → U4_GGA(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → ISNUMBER_IN_G(V)
U5_GGA(U, V, X, W, isnumber_out_g(V)) → U6_GGA(U, V, X, W, d_in_gga(U, X, W))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → U3_GGA(U, V, X, B, A, d_in_gga(V, X, B))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X, 0) → U1_gga(T, X, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X, isnumber_out_g(T)) → d_out_gga(T, X, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
D_IN_GGA(T, X, 0) → U1_GGA(T, X, isnumber_in_g(T))
D_IN_GGA(T, X, 0) → ISNUMBER_IN_G(T)
ISNUMBER_IN_G(s(X)) → U7_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → U8_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → U4_GGA(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → ISNUMBER_IN_G(V)
U5_GGA(U, V, X, W, isnumber_out_g(V)) → U6_GGA(U, V, X, W, d_in_gga(U, X, W))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → U3_GGA(U, V, X, B, A, d_in_gga(V, X, B))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X, 0) → U1_gga(T, X, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X, isnumber_out_g(T)) → d_out_gga(T, X, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X, 0) → U1_gga(T, X, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X, isnumber_out_g(T)) → d_out_gga(T, X, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDPToQDPProof
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X, 0) → U1_gga(T, X, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X, isnumber_out_g(T)) → d_out_gga(T, X, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
D_IN_GGA(power(U, V), X) → U5_GGA(U, V, X, isnumber_in_g(V))
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
U5_GGA(U, V, X, isnumber_out_g) → D_IN_GGA(U, X)
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
d_in_gga(X, X) → d_out_gga(1)
d_in_gga(T, X) → U1_gga(isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g
isnumber_in_g(s(X)) → U7_g(isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(isnumber_in_g(X))
U8_g(isnumber_out_g) → isnumber_out_g
U7_g(isnumber_out_g) → isnumber_out_g
U1_gga(isnumber_out_g) → d_out_gga(0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g) → U6_gga(U, V, d_in_gga(U, X))
U6_gga(U, V, d_out_gga(W)) → d_out_gga(times(V, times(W, power(U, p(V)))))
U4_gga(d_out_gga(W)) → d_out_gga(W)
U2_gga(U, V, X, d_out_gga(A)) → U3_gga(U, V, A, d_in_gga(V, X))
U3_gga(U, V, A, d_out_gga(B)) → d_out_gga(+(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0)
U7_g(x0)
U1_gga(x0)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2)
U4_gga(x0)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
D_IN_GGA(power(U, V), X) → U5_GGA(U, V, X, isnumber_in_g(V))
Used ordering: Polynomial interpretation [25]:
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
U5_GGA(U, V, X, isnumber_out_g) → D_IN_GGA(U, X)
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
POL(+(x1, x2)) = 0
POL(0) = 0
POL(1) = 0
POL(D_IN_GGA(x1, x2)) = 1 + x1
POL(U1_gga(x1)) = 0
POL(U2_GGA(x1, x2, x3, x4)) = 1 + x2
POL(U2_gga(x1, x2, x3, x4)) = 0
POL(U3_gga(x1, x2, x3, x4)) = 0
POL(U4_gga(x1)) = 0
POL(U5_GGA(x1, x2, x3, x4)) = 1 + x1
POL(U5_gga(x1, x2, x3, x4)) = 0
POL(U6_gga(x1, x2, x3)) = 0
POL(U7_g(x1)) = 0
POL(U8_g(x1)) = 0
POL(d_in_gga(x1, x2)) = 0
POL(d_out_gga(x1)) = 0
POL(div(x1, x2)) = 1 + x1 + x2
POL(isnumber_in_g(x1)) = 0
POL(isnumber_out_g) = 0
POL(p(x1)) = 0
POL(power(x1, x2)) = 1 + x1
POL(s(x1)) = 0
POL(times(x1, x2)) = x1 + x2
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
U5_GGA(U, V, X, isnumber_out_g) → D_IN_GGA(U, X)
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
d_in_gga(X, X) → d_out_gga(1)
d_in_gga(T, X) → U1_gga(isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g
isnumber_in_g(s(X)) → U7_g(isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(isnumber_in_g(X))
U8_g(isnumber_out_g) → isnumber_out_g
U7_g(isnumber_out_g) → isnumber_out_g
U1_gga(isnumber_out_g) → d_out_gga(0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g) → U6_gga(U, V, d_in_gga(U, X))
U6_gga(U, V, d_out_gga(W)) → d_out_gga(times(V, times(W, power(U, p(V)))))
U4_gga(d_out_gga(W)) → d_out_gga(W)
U2_gga(U, V, X, d_out_gga(A)) → U3_gga(U, V, A, d_in_gga(V, X))
U3_gga(U, V, A, d_out_gga(B)) → d_out_gga(+(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0)
U7_g(x0)
U1_gga(x0)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2)
U4_gga(x0)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
d_in_gga(X, X) → d_out_gga(1)
d_in_gga(T, X) → U1_gga(isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g
isnumber_in_g(s(X)) → U7_g(isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(isnumber_in_g(X))
U8_g(isnumber_out_g) → isnumber_out_g
U7_g(isnumber_out_g) → isnumber_out_g
U1_gga(isnumber_out_g) → d_out_gga(0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g) → U6_gga(U, V, d_in_gga(U, X))
U6_gga(U, V, d_out_gga(W)) → d_out_gga(times(V, times(W, power(U, p(V)))))
U4_gga(d_out_gga(W)) → d_out_gga(W)
U2_gga(U, V, X, d_out_gga(A)) → U3_gga(U, V, A, d_in_gga(V, X))
U3_gga(U, V, A, d_out_gga(B)) → d_out_gga(+(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0)
U7_g(x0)
U1_gga(x0)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2)
U4_gga(x0)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
Used ordering: Polynomial interpretation [25]:
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
POL(+(x1, x2)) = 0
POL(0) = 0
POL(1) = 0
POL(D_IN_GGA(x1, x2)) = x1
POL(U1_gga(x1)) = 0
POL(U2_GGA(x1, x2, x3, x4)) = x1 + x2
POL(U2_gga(x1, x2, x3, x4)) = 0
POL(U3_gga(x1, x2, x3, x4)) = 0
POL(U4_gga(x1)) = 0
POL(U5_gga(x1, x2, x3, x4)) = 0
POL(U6_gga(x1, x2, x3)) = 0
POL(U7_g(x1)) = 0
POL(U8_g(x1)) = 0
POL(d_in_gga(x1, x2)) = 0
POL(d_out_gga(x1)) = 0
POL(div(x1, x2)) = 1 + x1
POL(isnumber_in_g(x1)) = 0
POL(isnumber_out_g) = 0
POL(p(x1)) = 0
POL(power(x1, x2)) = 0
POL(s(x1)) = 0
POL(times(x1, x2)) = x1 + x2
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPSizeChangeProof
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
d_in_gga(X, X) → d_out_gga(1)
d_in_gga(T, X) → U1_gga(isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g
isnumber_in_g(s(X)) → U7_g(isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(isnumber_in_g(X))
U8_g(isnumber_out_g) → isnumber_out_g
U7_g(isnumber_out_g) → isnumber_out_g
U1_gga(isnumber_out_g) → d_out_gga(0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g) → U6_gga(U, V, d_in_gga(U, X))
U6_gga(U, V, d_out_gga(W)) → d_out_gga(times(V, times(W, power(U, p(V)))))
U4_gga(d_out_gga(W)) → d_out_gga(W)
U2_gga(U, V, X, d_out_gga(A)) → U3_gga(U, V, A, d_in_gga(V, X))
U3_gga(U, V, A, d_out_gga(B)) → d_out_gga(+(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0)
U7_g(x0)
U1_gga(x0)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2)
U4_gga(x0)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3)
From the DPs we obtained the following set of size-change graphs: